#ifndef APPAlgorithmDesigner_H
#define APPAlgorithmDesigner_H

#include "AdaptiveAlgorithmDesignerBase.h"

namespace Ui {
class APPAlgorithmDesigner;
}

class APPAlgorithmDesigner : public AdaptiveAlgorithmDesignerBase
{
    Q_OBJECT

public:
    explicit APPAlgorithmDesigner(QWidget *parent = 0);
    ~APPAlgorithmDesigner();


    /**
        Wiąże obiekt algorytmu adaptacyjnego z tym widgetem.
        Zadaniem klasy implementującej jest odświeżenie interfejsu użytkownika
        po dołączeniu obiektu, tak by przedstawiał faktyczne ustawienia.
    */
    void attachAlgorithm(RafMat::SimInterface::IConfigurableSPtr ctrl);

    /**
        Zatwierdza zmiany w ustawieniach algorytmu.
        Metoda wywoływana po wciśnięciu odpowiedniego przycisku zatwierdzającego zmiany.
    */
    void applySettings();

private:
    Ui::APPAlgorithmDesigner *ui;

    RafMat::SimInterface::IConfigurableSPtr m_targetAlgorithm;
};

#endif // APPAlgorithmDesigner_H
